static AtkObject * st_widget_get_accessible (ClutterActor *actor);
static gboolean st_widget_has_accessible (ClutterActor *actor);
+static void
+st_widget_update_insensitive (StWidget *widget)
+{
+ if (clutter_actor_get_reactive (CLUTTER_ACTOR (widget)))
+ st_widget_remove_style_pseudo_class (widget, "insensitive");
+ else
+ st_widget_add_style_pseudo_class (widget, "insensitive");
+}
+
static void
st_widget_set_property (GObject *gobject,
guint prop_id,
}
}
+static void
+st_widget_constructed (GObject *gobject)
+{
+ G_OBJECT_CLASS (st_widget_parent_class)->constructed (gobject);
+
+ st_widget_update_insensitive (ST_WIDGET (gobject));
+}
+
static void
st_widget_remove_transition (StWidget *widget)
{
gobject_class->set_property = st_widget_set_property;
gobject_class->get_property = st_widget_get_property;
+ gobject_class->constructed = st_widget_constructed;
gobject_class->dispose = st_widget_dispose;
gobject_class->finalize = st_widget_finalize;
{
StWidgetPrivate *priv = st_widget_get_instance_private (widget);
- if (clutter_actor_get_reactive (CLUTTER_ACTOR (widget)))
- st_widget_remove_style_pseudo_class (widget, "insensitive");
- else
- st_widget_add_style_pseudo_class (widget, "insensitive");
+ st_widget_update_insensitive (widget);
if (priv->track_hover)
st_widget_sync_hover(widget);
/* Test the StWidget add/remove pseudo_class interfaces */
label = st_label_new ("foo");
+ /* Make reactive, so we don't get the automatic :insensitive style */
+ clutter_actor_set_reactive (CLUTTER_ACTOR (label), TRUE);
clutter_actor_add_child (stage, CLUTTER_ACTOR (label));
labelNode = st_widget_get_theme_node (label);